package book.nettyinaction.ch06;

import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.util.ReferenceCountUtil;

/**
 * 代码清单 6-1 释放消息资源
 *
 * Netty 将使用 WARN 级别的日志消息记录未释放的资源，使得可以非常简单地在代码中发现违规的实例。
 * 但是以这种方式管理资源可能很烦琐。一个更加简单的方式是使用 SimpleChannelInboundHandler 。
 *
 * 扩展了 ChannelInboundHandlerAdapter
 */
@ChannelHandler.Sharable
public class DiscardHandler extends ChannelInboundHandlerAdapter {

    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {

        // 丢弃已接收的消息
        ReferenceCountUtil.release( msg );
    }
}
